home *** CD-ROM | disk | FTP | other *** search
/ Meeting Pearls 1 / Meeting Pearls Vol 1 (1994).iso / installed_progs / text / faqs / linux.howto.xfree86 < prev    next >
Encoding:
Internet Message Format  |  1994-05-15  |  60.8 KB

  1. Subject: Linux XFree86 HOWTO
  2. Newsgroups: comp.os.linux.announce,comp.os.linux.help,comp.os.linux.admin,comp.windows.x.i386unix,comp.answers,news.answers
  3. From: geyer@polyhymnia.iwr.uni-heidelberg.de (Helmut Geyer)
  4. Date: Fri, 13 May 1994 20:41:24 GMT
  5.  
  6. Archive-name: linux/howto/XFree86
  7. Last-modified: 13 May 94
  8.  
  9.   The Linux XFree86 HOWTO
  10.   Helmut Geyer, Helmut.Geyer@iwr.uni-heidelberg.de
  11.   v2.0 , 2. May 1994
  12.  
  13.   This    document   describes  how  to    obtain,    install  and  configure
  14.   XFree86[TM] for Linux systems. XFree86  version 2 is an enhanced  ver-
  15.   sion of the X Window System version 11 release 5 with support for many
  16.   versions of UN*X running on Intel[TM]    386/486/Pentium[TM]  platforms,
  17.   including  Linux.  It    supports  a  great amount of video hardware for
  18.   these systems and includes  many  bugfixes  beyond  the  MIT    standard
  19.   release  of X.  It is intended to help Linux users install and config-
  20.   ure XFree86. It covers all versions of XFree86 starting  from    version
  21.   2.0.    It is furthermore intended to answer some basic questions about
  22.   X and programs using X.  Please read this file and the referenced doc-
  23.   umentation  files  BEFORE  installing and starting XFree86. IF YOU ARE
  24.   NOT CAREFUL, YOU MIGHT DAMAGE YOUR HARDWARE.    If you have access to  a
  25.   printer  capable  of    printing  DVI  or  PostScript[TM] documents, you
  26.   should consider to get those versions of this HOWTO as  these    provide
  27.   far more readability by better formatting.  A WWW version of this file
  28.   and    many    other     HOWTOs    can    be    read    using
  29.   http://sunsite.unc.edu/mdw/linux.html.
  30.  
  31.   1.  Introduction
  32.  
  33.   This    file is meant to help you setting up your XFree86 system. It is,
  34.   however, far from complete. You have to look to several other files or
  35.   manpages  to    get complete information. It is noted at the appropriate
  36.   places, which files have to be read. For  a  complete    description  on
  37.   features  and    the installation please look at the documentation files
  38.   and manuals that come with XFree86 (residing in  /usr/X386/lib/X11/etc
  39.   and its subdirectories as well as in /usr/X386/man/man?) (-- To read a
  40.   manpage just run man program_name, the other documentation  files  are
  41.   plain    ascii    and  can be read with the editor of your choice or using
  42.   more or less.--) .  The most important files will be    pointed    out  to
  43.   you  in this HOWTO. The documentation files are packages separately in
  44.   a file called *-doc* [cf. 4.1]   from the XFree86 binary distribution.
  45.  
  46.   Any bundeled distribution of XFree86 should include the  documentation
  47.   files.  If it doesn't, please contact the distributor on how to obtain
  48.   these.
  49.  
  50.   Other manual pages from the stock X11R5 distribution can be  found  in
  51.   the  *-man*  file  of the XFree86 distribution. These manpages come as
  52.   sources for the nroff program.
  53.  
  54.   To read them you will need a working man program as well as the  groff
  55.   package  for    formatting  them. Note that it is often required to read
  56.   manpages, so you should install the groff package anyway. (I think  it
  57.   is  no good idea that in many distributions this package is considered
  58.   optional).
  59.  
  60.   This file comes  WITHOUT  ANY    WARRANTY  OF  FITNESS.    If  you  damage
  61.   anything following these informations, you are on your own.
  62.  
  63.  
  64.   1.1.    Copyright notice
  65.  
  66.   The XFree86 HOWTO is copyrighted (c) Helmut Geyer 1994
  67.  
  68.   A verbatim copy of the XFree86 HOWTO may be reproduced and distributed
  69.   in any medium physical or electronic without permission of the author.
  70.   Translations    works are similarly permitted without express permission
  71.   if  it  includes  a  notice    on   who   translated    it.   Commercial
  72.   redistribution  is  allowed  and encouraged; however, the author would
  73.   like to be notified of any such distributions.
  74.  
  75.   Short quotes    may  be    used  without    prior  consent    by  the    author.
  76.   Derivative work and partial distributions of this HOWTO have to either
  77.   include a verbatim copy of this file or make a verbatim copy    of  this
  78.   file    available.  If the latter is the case, a pointer to the verbatim
  79.   copy must be stated at a clearly visible place.  If  you  want  to  do
  80.   either of the last possibilities, you should contact the author.
  81.  
  82.   1.2.    Requirements on reading this HOWTO
  83.  
  84.   You  should  be aquainted to some very basic facts of a Unix, e.g. you
  85.   should be able to read a  text  file    or  read  a  manpage.  A  simple
  86.   introduction    into  Unix  can    be  found  in    the Installation Guide &
  87.   Getting Started document by Matt Welsh.  Everyone  who  installes  and
  88.   runs    Linux  for  the    first    time,  should  read  this document. This
  89.   document is written in LaTeX and can    be  obtained  in  several  forms
  90.   (PostScript,    DVI,  TeX  or  ASCII format) from sunsite.unc.edu in the
  91.   directory /pub/Linux/docs/LDP or from tsx-11.mit.edu in the  directory
  92.   /pub/linux/docs/LDP by anonymous ftp.
  93.  
  94.   Many    Linux  distributions provide this document in at least one form.
  95.   You should find it in the /usr/doc directory. In  this  directory  you
  96.   can find a lot of interesting documentation files, so you should check
  97.   this directory and read the appropriate files.
  98.  
  99.  
  100.   1.3.    Feedback
  101.  
  102.   Comments, criticism or suggestions on this document are very    welcome.
  103.   If  you  think  that    something  is  missing, something is obsolete or
  104.   wrong, or something could be done better, feel free to contact  Helmut
  105.   Geyer via email, Helmut.Geyer@IWR.uni-heidelberg.de.
  106.  
  107.  
  108.   1.4.    New versions
  109.  
  110.   The  ASCII  version  of  this    document  will    be  posted regularly to
  111.   comp.os.linux.announce,  comp.windows.x.i386unix,  news.answers,   and
  112.   comp.answers.    In  addition    to  those sites that archive the answers
  113.   newsgroups, the latest version can be found on sunsite.unc.edu in  the
  114.   directory  /pub/Linux/docs/HOWTO. This site carries not only the ASCII
  115.   version but also other formats (DVI, PostScript[TM]  and  HTML),  too.
  116.   These    other versions are easier to read than the ASCII version, so if
  117.   you have the resources to read or print these other versions, do it.
  118.  
  119.  
  120.   2.  What are X11 and XFree86?
  121.  
  122.   X11 is a windowing system for UN*X  like  operating  systems.    The  X
  123.   Windowing  System  was  issued  by  the  MIT Consortium (look at the X
  124.   manpage for  more  information)  and    is  put    under    a  very    liberal
  125.   copyright,  that  allows  any    use  of  source  code provided that the
  126.   original copyright notices are  included.  The  release  of  X11  that
  127.   XFree86  2.*    is  based  upon    is  X11  Release 5. The work of the MIT
  128.   Consortium is continued by the X Consortium that just released  a  new
  129.   release  of X, X11R6.    The next official XFree86 release will be based
  130.   on X11R6 [cf Appendix B].  As X is the standard windowing system  for
  131.   UN*X operating systems, there are a lot of applications using it (both
  132.   free and commercial).
  133.  
  134.   XFree86 2.* is a port of  X11R5  that    supports  several  versions  of
  135.   Intel-based Unix and Unix-like operating systems.  The XFree86 servers
  136.   are partly derived from X386 1.2, which was the X  server  distributed
  137.   with    X11R5,    but  many  of  them are newly developed. The accelerated
  138.   servers that are the most  important    change    since  XFree86    1.3  are
  139.   completely  new.  This  release  consists  of    many  new  features and
  140.   performance improvements as well as many bug fixes.    The  release  is
  141.   available  as    source    patches  against the MIT X11R5 code, as well as
  142.   binary distributions for many architectures.
  143.  
  144.   Note that while the source and  installation    trees  retain  the  name
  145.   'X386'  name (for simplicity of maintenance of the source tree), there
  146.   is no connection between XFree86 and the commercial X386 product  sold
  147.   by  SGCS.   The  XFree86  Project  maintains    technical contacts in an
  148.   effort to keep user-affecting changes to the workings of the    products
  149.   from    diverging  too    radically.   There  is    no direct involvement of
  150.   either group in the workings of the other.
  151.  
  152.  
  153.   2.1.    The XFree86 Project, Inc.
  154.  
  155.   The XFree86 team had several problems in the past due to the fact that
  156.   it  was  no  legal  organisation.  So    it was not possible to become a
  157.   member of the X Consortium, Inc. This was sometimes  annoying    as  the
  158.   new releases are only provided for members before the official release
  159.   date. This and several other thoughts led to    the  foundation    of  The
  160.   XFree86 Project, Inc.
  161.  
  162.   XFree86  is  now  a  trademark  of The XFree86 Project, Inc.    For more
  163.   information read the section    on  The    XFree86  Project  in  the  file
  164.   /usr/X386/lib/X11/etc/README from the documentation tarfile.
  165.  
  166.  
  167.   3.  Supported Hardware
  168.  
  169.   As  this  is    the  most  often  asked question, this will be the first
  170.   section.   Currently    XFree86    (Version  2.0    -  2.1.1)  supports  the
  171.   following  chipsets  in  the XF86_SVGA server (note that it depends on
  172.   the chipset whether a card is working and  not  on  the  vendor,  with
  173.   Diamond   notably  excluded,    cf.  the  remark  at  the  end    of  this
  174.   paragraph):
  175.  
  176.   o  nonaccelerated chipsets:
  177.  
  178.   o  Tseng ET3000, ET4000AX, ET4000/W32
  179.  
  180.   o  Western Digital/Paradise PVGA1
  181.  
  182.   o  Western Digital WD90C00, WD90C10, WD90C11, WD90C24, WD90C30
  183.  
  184.   o  Genoa GVGA
  185.  
  186.   o  Trident TVGA8800CS,  TVGA8900B,  TVGA8900C,  TVGA8900CL,  TVGA9000,
  187.      TVGA9000i, TVGA9100B, TVGA9200CX, TVGA9320, TVGA9400CX, TVGA9420
  188.  
  189.   o  ATI 28800-4, 28800-5, 28800-6, 28800-a
  190.  
  191.   o  NCR 77C22, 77C22E, 77C22E+
  192.  
  193.   o  Cirrus Logic CLGD6205, CLGD6215, CLGD6225, CLGD6235
  194.  
  195.   o  Compaq AVGA
  196.  
  197.   o  OAK OTI067, OTI077
  198.  
  199.   o  accelerated chipsets:
  200.  
  201.   o  Cirrus GLGD5420, CLGD5422, CLGD5424, CLGD5426, CLGD5428
  202.  
  203.   o  Western Digital WD90C31
  204.  
  205.      Note that the WD90C33 is currently not supported by any of the non-
  206.      generic servers. There are additional  problems  with  the    generic
  207.      servers of XFree86 2.0, too. Please look at the section on bugs and
  208.      fixes.
  209.  
  210.   These chipsets are all supported  in    256  color  (XF86_SVGA)    and  in
  211.   monochrome mode (XF86_Mono) with the exception of the Cirrus chipsets,
  212.   which are only supported in 256 color mode (-- Note that if you have a
  213.   grey    scale  display    you  need to run the colour server as grey scale
  214.   behaves just like colour, not like monochrome mode--) . Note that  the
  215.   ET4000/W32  is  only    supported  as  a  ET4000  clone    and none of the
  216.   accelerated functions are used.
  217.  
  218.   The monochrome server also supports generic VGA cards    (using    64k  of
  219.   the  video memory as a single bank), the Hercules card and the Hyundai
  220.   HGC-1280. Note that these drivers are not part of the XF86_Mono server
  221.   by  default.    If  you    want to use these, you have to reconfigure your
  222.   XF86_Mono  server  using  the    LinkKit  (or,    of  course,  the  source
  223.   distribution    -  but    the  LinkKit  will need less disk space and less
  224.   compile time). See the Appendix for further  information  on    using  a
  225.   Hercules mono card.
  226.  
  227.   There is an (experimental) additional server that works on generic VGA
  228.   hardware: XF86_VGA16, a 16 color server.
  229.  
  230.   XFree86 supports the    following  accelerated    chipsets  with    separate
  231.   servers:
  232.  
  233.   o  S3    86C911,  86C924,  86C801,  86C805,  86C928  supported  by the
  234.      XF86_S3 server
  235.  
  236.   o  ATI  mach8 supported by the XF86_Mach8 server
  237.  
  238.   o  ATI  mach32 supported by the XF86_Mach32 server
  239.  
  240.   o  IBM  8514/a and true clones supported by the XF86_8514 server
  241.  
  242.      Currently the S3 Vision864 and Vision964 are not yet working.
  243.  
  244.   No other chipsets are supported; not Weitek P9000, not TIGA,    not  IIT
  245.   AGX,    not  Microfield,  not  the  new    MGA  chipsets (as in the Matrox
  246.   cards), etc.    Support for some of these will perhaps    be  provided  in
  247.   future XFree86 releases.  TIGA will never be supported, as it requires
  248.   licensing materials from TI (and may disallow    source    distributions);
  249.   Microfield boards will never be supported, as they use proprietary and
  250.   undocumented custom microcode interfaces.  Note further: The following
  251.   is  a    statement  of    the  XFree86 Project concerning graphic cards by
  252.   Diamond:
  253.  
  254.        All Diamond cards are NOT supported by XFree86 even if they
  255.        have a supported chipset (with  the exception of the Cirrus
  256.        chipsets that have an internal clock generator). The reason
  257.        for this is that Diamond has changed  the mechanism used to
  258.        select  pixel   clock  frequencies, and    will only  release
  259.        programming information under  non-disclosure.    We are not
  260.        willing to do this (as it would mean  that source cannot be
  261.        provided).  We have had discussions with Diamond over this,
  262.        and they do not    intend to  change  this policy.    Hence    we
  263.        will do nothing    to support Diamond products  going forward
  264.        (i.e.  don't  send us a program    to run    set their clocks).
  265.        XFree86 DOES NOT SUPPORT    DIAMOND HARDWARE.  It is possible
  266.        to make some  of it work, but  we will not assist  in doing
  267.        this.
  268.  
  269.  
  270.   The author of this HOWTO does support this  statement    completely.  If
  271.   you  have  read  this and bought nevertheless a card from Diamond, you
  272.   will damage the idea of free software as Diamond does not support  the
  273.   efforts  of  a  free    X11  server. There is enough good and affordable
  274.   graphics hardware available from companies that support XFree86.
  275.  
  276.   However, if you are stuck  with  a  card  from  Diamond,  there  is  a
  277.   compilation  of  the    needed    things to get XFree86 running on some of
  278.   these cards. It is called the Diamond-FAQ and    can  be  obtained  from
  279.   tsx-11 or sunsite in the docs directories.
  280.  
  281.   Do  not  ask the XFree86 team about Diamond hardware.    You will simply
  282.   annoy them, and get no information.
  283.  
  284.   For some of these chipsets there are    specific  README  files    (to  be
  285.   found    in  /usr/X386/lib/X11/etc). If there is one for the chipset you
  286.   use, read it!    In these READMEs the specific options that can be  used
  287.   to  configure    the  server  are explained. Currently there are special
  288.   READMEs for ATI, Trident, Tsengm Western Digital, and Cirrus chipsets.
  289.  
  290.   More information on the servers can be found in their manpages.
  291.  
  292.   Later more on configuring the servers [cf. 5.1].
  293.  
  294.  
  295.   4.  Installing XFree86
  296.  
  297.   4.1.    Where do I get XFree86 and what do I need to run it?
  298.  
  299.   This section is dedicated to the Linux binary distribution so all file
  300.   names and site names are for Linux only. If you read this file and are
  301.   not  using Linux, you should get your hands on the announcement of the
  302.   according version of XFree86 for you OS.  In    it  you    will  find  all
  303.   necessary information on obtaining it.
  304.  
  305.   You  can  get    the  binary  distributions  of    XFree86  for  Linux via
  306.   anonymous FTP from
  307.  
  308.  
  309.  
  310.      tsx-11.mit.edu:/pub/linux/packages/X11/XFree86-ver
  311.          or
  312.      sunsite.unc.edu:/pub/Linux/X11/XFree86-ver
  313.  
  314.  
  315.  
  316.  
  317.   where ver is the version number of the XFree86  release  you    want  to
  318.   obtain  (e.g.    2.1 for XFree86 2.1).    The files have names of the form
  319.   XF86-ver-name.tar.gz (versions 2.1 and 2.1.1) or  xf86-name-2.0.tar.gz
  320.   where    ver is the XFree86 version and name is the name of the package.
  321.   If you already know, which server you need to run, you should not  get
  322.   the  *-svr*  file but the file XF86_servername.tar.gz where servername
  323.   is the name of the server to run.
  324.  
  325.   To get Version 2.1.1, which is only a bugfix release, you have to  get
  326.   the  complete    2.1  distribution but the server files. In addition you
  327.   have to get the 2.1.1 files (you will probably need  only  one  server
  328.   file,    but  you should get all the rest).  Install the 2.1 files first
  329.   and install the 2.1.1 files only after that.
  330.  
  331.   Of course you can find it on all mirrors of those two, too. So  please
  332.   look    for  a    ftp site near to you mirroring sunsite or tsx-11 to save
  333.   bandwidth.
  334.  
  335.   You can find an incomplete list of sites mirroring these  two    in  the
  336.   bbs-list  to    be  found  in the docs directories of both sites. If you
  337.   have access to archie, try using it to find a site carrying  Linux  in
  338.   your neighbourhood.
  339.   The distribution consists of several gzipped tarfiles. As some of them
  340.   are too large to fit on a single floppy, so you might    have  to  split
  341.   those).  For    a concise description on what the tarfiles contain, look
  342.   at the README file in this directory.
  343.  
  344.   You will need the following setup to run XFree86 (split by  versions).
  345.   You  have  to    have at least these versions, later versions will work,
  346.   too.
  347.  
  348.  
  349.        XFree86 version:        2.0     2.1        2.1.1
  350.  
  351.        kernel version:    0.99pl13    0.99pl15  0.99pl15h
  352.        C library version       4.4.1    4.5.21     4.5.21
  353.        ld.so version:        1.3     1.4.3    1.4.3
  354.  
  355.  
  356.  
  357.  
  358.   You can find the most recent versions on most linux  sites  [cf.  4.1].
  359.   You  can  find  the C library (libc) and the dynamic loader (ld.so) in
  360.   the GCC directory on these sites.
  361.  
  362.   You will need a main memory of at least 8 MB and a virtual  memory  of
  363.   at least 16 MB (i.e. main memory + swap). It is possible to run X on a
  364.   4 MB machine if  you    take  some  precautions    on  memory  usage  [cf.
  365.   6].Note that you should nevertheless have 16 MB of virtual memory (so
  366.   if you have 4 megs of physical RAM, you should have 12 megs of  swap).
  367.   It  is  recommended  that you have at least 8 megs of physical RAM, as
  368.   swaping is very slow.    With only 4 megs of physical  RAM,  performance
  369.   will suffer greatly. To run X11 comfortably, 8 MB are needed.
  370.  
  371.   If you want to run memory-hog programs from within X (as e.g. gcc) you
  372.   should at least have 16 MB of main memory and another 16MB of swap.
  373.  
  374.   You will need about 17 MB of disk space for the complete  installation
  375.   without  LinkKit,  21    MB with LinkKit. By deleting those servers that
  376.   you don't need and removing the LinkKit after linking your own server,
  377.   you can save several MB of diskspace.
  378.  
  379.   Before  installing XFree86, you should make a backup of all files that
  380.   you changed. They may not be usable, but they    still    hold  a    lot  of
  381.   information  you  might  want to preserve. (Your old XConfig file will
  382.   not be deleted, but it's allways better to have a backup of this file)
  383.  
  384.   To  install  the  binary  distribution you have to do the following as
  385.   root with all needed tarfiles from above. For installing  XFree86  2.0
  386.   (which  is not recommended) you have to do it from /, for 2.1 or 2.1.1
  387.   you have to run first mkdir /usr/X386 ; cd /usr/X386 [cf 10].    To  get
  388.   all permissions right you should run umask 022 before installing it.
  389.  
  390.  
  391.        gzip -dc tarfilename | tar xvvof -
  392.  
  393.  
  394.  
  395.  
  396.   WARNING:  This will overwrite all files from an older XFree86 version,
  397.   of course not the Xconfig file (if  you  did    not  link  it  to  Xcon-
  398.   fig.sample,  which  you  should not do). In other words, only if Xcon-
  399.   fig.sample is linked to your Xconfig, it  will  be  overwritten.  Many
  400.   other    files    will  be overwritten, though (e.g. the xdm configuration
  401.   files, the system wide twm configuration file,  ...).    So  you  should
  402.   backup every file you changed before installing XFree86.
  403.  
  404.  
  405.   After    installing  it,  you  have to set it up correctly to match your
  406.   system [cf. 5].
  407.  
  408.  
  409.   4.2.    How do I compile it myself and where can I get the sources?
  410.  
  411.   You do not want to do this. Only if you really want to make changes to
  412.   the sources because something is not working you should consider this.
  413.   You  will need a lot of disk space and CPU time to do a complete build
  414.   of the XFree86 system. Anything you need to know for compiling XFree86
  415.   you    can   find   in    the    following   files   (to    be   found  in
  416.   /usr/X386/lib/X11/etc): INSTALL, README, and README.Linux.
  417.  
  418.   Note that you should not compile XFree86 to get rid of some  hardcoded
  419.   restrictions    (e.g.  on  the    maximal    pixel    clock)    as without these
  420.   restrictions your hardware will probably break down.
  421.  
  422.   To build a server that only  includes    those    drivers    you  need,  you
  423.   should  use the LinkKit instead of compiling the complete system. This
  424.   is much easier. Read /usr/X386/lib/Server/README for a description how
  425.   to do this. This file is not included in the standard XFree86 tarfiles
  426.   but is part of the file that includes the LinkKit. This file is called
  427.   *-kit* or *-lkit*.
  428.  
  429.   For adding drivers to the SVGA servers you will only need the LinkKit.
  430.   The  documentation  how   to    do   this   can   be    found    in   the
  431.   /usr/X386/lib/Server/VGADriverDoc   directory    after    installing  the
  432.   LinkKit package.
  433.  
  434.  
  435.   5.  Setting up your XFree86 system
  436.  
  437.  
  438.   This section gives a short introduction on how to  set  up  a    XFree86
  439.   system  on your computer. The most important (and most difficult) part
  440.   is setting up a Xconfig file. If  you    have  XFree86    2.1.1  and  your
  441.   graphic  card    is  in    the  data base, you should use ConfigXF86 to do
  442.   this. It is comfortable and safe that way. You can use ConfigXF86  for
  443.   many    things    even  if  your    card  and  monitor  are not known to the
  444.   program. Please use it if you have XFree86 2.1.1.
  445.  
  446.   5.1.    The Xconfig file
  447.  
  448.   To be able to set up a Xconfig file, you need to  read  the  following
  449.   files    that  reside  in  /usr/X386/lib/X11/etc: README, README.Config,
  450.   VideoModes.doc, and README.Linux.
  451.  
  452.   Furthermore you need to read the following manpages: Xconfig, XFree86,
  453.   XFree86kbd,  and that of the server you are going to use. This section
  454.   will try to give you an approach to these files as well as making some
  455.   of  the  statements in those more understandable for the unexperienced
  456.   user.
  457.  
  458.   The Xconfig file can be located in several places:
  459.  
  460.   o  /usr/X386/lib/X11. This is the standard  location    for  the  sample
  461.      Xconfig  file,  but  is  in  some cases not possible to use (e.g. a
  462.      read-only /usr partition).
  463.  
  464.   o  /etc.
  465.  
  466.   o  In the user's home directory.
  467.  
  468.   o  As Xconfig.hostname in /usr/X386/lib/X11.
  469.  
  470.      The Linux    file  system  standard    places    the  Xconfig  file  into
  471.      /etc/X11.    This  has several causes, but you should never edit that
  472.      file. The XFree86 servers will not expect a Xconfig  file    at  this
  473.      location, so there has to be a link from one of the above places to
  474.      this location.  Find this link first and access the file using  the
  475.      link. This way you can be sure your changes will take effect.
  476.  
  477.   To  give you some hints, here is a list of what you need to set up the
  478.   Xconfig file correctly:
  479.  
  480.   o  The server that is suitable for you system. To get a hint which  is
  481.      the  correct  one,    run  the  SuperProbe  program    that  comes with
  482.      XFree86. It will identify your chipset and    you  can  look    at  the
  483.      table  above [cf. 3],which server supports this chipset. Note that
  484.      SuperProbe can detect far more hardware than XFree86 supports.
  485.  
  486.   o  The specifications of your monitor. Most important are the    maximal
  487.      horizontal    and vertical scan frequency ranges and the bandwidth of
  488.      the  monitor.  This  information  should  be  obtained  from   your
  489.      monitor's    datasheet.  See    the  video  mode section 5.1.4 for further
  490.      information.
  491.  
  492.   o  The name of the chipset for your card. See 5.1.3 for more information.
  493.  
  494.   o  The  available  dot clocks for your card or (if supported) the name
  495.      of the programmable dot clock generator. How  to  obtain  these  is
  496.      explained    concisely  in /usr/X386/lib/X11/etc/README.Config.  This
  497.      will be done automagically by ConfigXF86. Note that if you    have  a
  498.      programmable  clock  generator,  you  have    to  look in the Xconfig
  499.      manpage, whether it is supported. A programmable  clock  cannot  be
  500.      detected properly.
  501.  
  502.   o  Mouse  type (this refers to the protocol the mouse is using, not to
  503.      the manufacturer, e.g. a serial microsoft mouse  connected    to  the
  504.      ps/2  port uses the ps/2 protocol, not the Microsoft protocol). See
  505.      5.1.2 for more information.
  506.  
  507.   o  The device name of the device your mouse is connected  to.    See 5.1.2 
  508.      for more information.
  509.  
  510.   o  If you want to use a national keyboard map for the kernel (i.e. you
  511.      are not running the generic US keytable), you should read 5.1.5 to set
  512.      up XFree86 correctly.
  513.  
  514.      You    should    read    README.Config    that    is   located   in
  515.      /usr/X386/lib/X11/etc and follow  the  instructions  there    to  the
  516.      point.  Especially the caveats that can be found int this file must
  517.      be obeyed, otherwise you might damage your hardware.
  518.  
  519.   WARNING: Do not ever share Xconfig files with people    who do not  have
  520.   exactly  the    same  Configuration  (i.e. graphic card and monitor). By
  521.   doing    this you could    toast your  monitor.  It  isn't   so  hard   to
  522.   figure  out  modes  (that  is, for  multisync monitors) and you surely
  523.   shouldn't ever use a mode that you  didn't check  by    yourself  to  be
  524.   within  your    monitor's  specs.   Even if  you have    exactly the same
  525.   setup    you should check all modes yourself before trying  them.  There
  526.   are    many  people  who  run their hardware out of specs which may not
  527.   damage their hardware but could yours.
  528.  
  529.  
  530.   5.1.1.  Running ConfigXF86
  531.  
  532.   From XFree86 2.1.1 on there is a great  tool    available  for    XFree86,
  533.   called  ConfigXF86. It was written by Stephen Zwaska, comments and new
  534.   database entries should be sent to him (stz@netcom.com). This    utility
  535.   will    give  you  an  easy  interface to the database of tested graphic
  536.   cards and monitors and it gives  you    some  tools  to    configure  your
  537.   Xconfig file correctly. The documentation for ConfigXF86 is located in
  538.   /usr/X386/lib/X11/ConfigXF86. Please read this first, it will help you
  539.   to  run  this    program.  This    documentation    is  provided  in several
  540.   formats. A  text  version  (ConfigXF86.txt)  can  be    read  online,  a
  541.   PostScript  version  (ConfigXF86.PS)    can  be    printed if a PostScript
  542.   printer is available. ConfigXF86 can be obtained from sunsite    in  the
  543.   directory /pub/linux/packages/X11/ConfigXF86.
  544.  
  545.   After    having    read  the documentation, start ConfigXF86 as root.  The
  546.   program cannot be run while a X server is running on    the  system,  so
  547.   run  ConfigXF86 (and if needed MakeCard) from the console.  You should
  548.   be able to answer all questions. The program will  probe  your  system
  549.   and  will  (at least partly) recognize the setup. If both your graphic
  550.   card and monitor are supported, you should not have any problems.  The
  551.   only    thing you should do is test the video modes and (perhaps) try to
  552.   make minor changes to the video modes to suit your monitor better [cf.
  553.   5.1.4].
  554.  
  555.   This    utility is very new, so there might be bugs (very probably there
  556.   are). If you encounter any problems, please report them.
  557.  
  558.   If your card is not supported, try to make a card database file  using
  559.   the    MakeCard    program    that     can     be    found     in
  560.   /usr/X386/lib/X11/ConfigXF86. Please read the next two sections before
  561.   running  it  as it may help you with some questions.    Having done that
  562.   you can run ConfigXF86 and choose the    datafile  you    just  generated.
  563.   Don't    forget to send the card data file and the monitor data files to
  564.   stz@netcom.com  so  that  other   people   may   benefit   from   your
  565.   achievements.
  566.  
  567.   5.1.2.  The easy sections
  568.  
  569.   5.1.2.1.  Remark:
  570.  
  571.   The  XFree86    servers parse the Xconfig file in case-insensitive mode,
  572.   so you need not woory about Capitalization.
  573.  
  574.  
  575.   5.1.2.2.  Paths:
  576.  
  577.   There is no reason to fiddle with the standard paths    as  provided  in
  578.   the  sample  Xconfig    file (any distribution that provides a different
  579.   path structure should have edited this section of  the  Xconfig.sample
  580.   or  the  template  Xconfig  file for ConfigXF86).  The only thing that
  581.   could be interesting is the use of a fontserver.  Look at the    Xconfig
  582.   manpage if you want use one, anything you need to know is shown there.
  583.   ConfigXF86 will prompt you whether you want to use a fontserver.
  584.  
  585.   5.1.2.3.  The keyboard section:
  586.  
  587.   This is fairly easy. You should  set    the  ServerNumlock  option,  but
  588.   otherwise  only  those  keyboard  modifications  that    are  needed for
  589.   international keyboard support should be needed to set  [cf. 5.1.5].  So
  590.   this section should look like:
  591.  
  592.  
  593.        ______________________________________________________________________
  594.        keyboard
  595.        servernumlock
  596.        RightAlt ModeShift
  597.        ______________________________________________________________________
  598.  
  599.  
  600.  
  601.  
  602.  
  603.   5.1.2.4.  The mouse section:
  604.  
  605.   The  keyword    for  the  mouse section is the name for the protocol the
  606.   mouse uses. The available protocol names are    listed    in  the    Xconfig
  607.   manpage. Some remarks on the mouse keywords:
  608.  
  609.   The  Logitech[TM]  serial  mice use several keywords: The MouseMan[TM]
  610.   uses the MouseMan keyword and more recent Logitech serial mice use the
  611.   Microsoft  keyword.  Older  Logitech    serial    mice  use  the    Logitech
  612.   keyword.
  613.  
  614.   Any mouse connected to the ps/2 port uses the ps/2 keyword (even if it
  615.   is in fact a serial mouse).
  616.  
  617.   As  there  is some confusion on the Linux mouse devicenames, here is a
  618.   list. The standard names confer to the names as of MAKEDEV 1.2. If you
  619.   are  not  sure,  which  kind of busmouse you have, look at the startup
  620.   messages of the kernel. It will identify the busmouse type. You should
  621.   make sure that the kernel busmouse driver is using the same IRQ as the
  622.   busmouse. If this is not the case, you have to change this (either  on
  623.   the  mouse  board  or    in the kernel). The IRQ for busmouse devices is
  624.   given in /usr/src/linux/include/linux/busmouse.h. The macro  MOUSE_IRQ
  625.   contains this IRQ. It is set to 5 by default.
  626.  
  627.   o  /dev/atibm    for the ATI XL busmouse (Note: the ATI GU busmouse is a
  628.      Logitech or Microsoft busmouse depending on the version you got).
  629.  
  630.   o  /dev/logibm for the Logitech busmouse (Note: this uses the Busmouse
  631.      protocol, not the Logitech protocol).
  632.  
  633.   o  /dev/inportbm  for    the Microsoft[TM] busmouse (Note: this uses the
  634.      Busmouse protocol, not the Microsoft protocol).
  635.  
  636.   o  /dev/psaux for a ps/2 or quickport mouse (uses the ps/2  protocol).
  637.  
  638.   o  The  other    supported  mice  are  serial mice, therefore the device
  639.      names are that of the serial devices (/dev/ttyS? or /dev/ttyS?? for
  640.      Linux).
  641.  
  642.      There  are    still    distributions  around  that use old or different
  643.      device names than those of MAKEDEV. A list of the major  and  minor
  644.      numbers  for  the    mouse  devices    can  be found in the/dev/MAKEDEV
  645.      script. If it is  missing    you  can  find    it  on    sunsite    in  the
  646.      /pub/Linux/system/Admin directory [cf 4.1].
  647.  
  648.   If  you  have    a two-button mouse, you might want to emulate the third
  649.   button (emulated by pressing both buttons simultaneously)  by    setting
  650.   Emulate3Buttons  in  the mouse section. There are quite a lot of other
  651.   settings available that are usually not needed. Look    at  the    Xconfig
  652.   manpage for a list of available settings.
  653.  
  654.  
  655.   5.1.3.  The server section
  656.  
  657.   You  should  be  able    to  set up this section by using the ConfigXF86
  658.   program. If your graphic  card  is  not  part    of  the  database,  run
  659.   MakeCard to build a new data file for your card. Many important things
  660.   are probed by MakeCard, but you may need or  want  to    set  additional
  661.   options.  These options are described in the manpage of the server you
  662.   want    to  use    (MakeCard  will  suggest  the    right    one)    and   in
  663.   README.Config.  After    running  MakeCard, run ConfigXF86 to set up the
  664.   Xconfig file.    If you do not have the ConfigXF86 package,  you  should
  665.   follow the instructions in README.Config to get everything right.
  666.  
  667.   If  you  want    to  identify  the  chipset  your graphic card uses, run
  668.   SuperProbe, a program that  comes  with  XFree86  and    is  capable  to
  669.   identify a lot of graphic hardware. Note that SuperProbe can probe far
  670.   more hardware than XFree86 supports.
  671.  
  672.  
  673.   5.1.4.  Setting up video modes
  674.  
  675.   This is the hardest part.  Please  read  VideoModes.doc  before  doing
  676.   anything  here.  If  you  are    using    ConfigXF86  (which  is    strongly
  677.   recommended), and your monitor is not    in  the  database,  you  should
  678.   choose  the  generic    modes and start making own modes from there.  If
  679.   you do not have ConfigXF86, a tutorial on building modes can be  found
  680.   in the README.Config and VideoModes.doc files.
  681.  
  682.   ConfigXF86  includes a very neat utility to tune video modes. As there
  683.   is no check on the fitness of a mode, you have to check the mode  data
  684.   against  your    monitor's  specifications  before testing the mode. The
  685.   first line of the screen for tuning modes gives you information on the
  686.   specifications of the mode. You have to check always that these values
  687.   are within you monitor's capabilities before testing that mode.
  688.  
  689.  
  690.   5.1.5.  International keyboard layout for XFree86
  691.  
  692.   From version 2.1 on the XFree86 servers are able to read the    keytable
  693.   from    the Linux kernel. So you need to set up only one keyboard layout
  694.   file (that for the kernel). There are some restrictions,  though  (the
  695.   kernel can support more keyboard functions than X11). X11 can only use
  696.   4 keytables (i.e. only one modifier  is  allowed,  called  ModeShift).
  697.   This    can  be configured using the ModeShift line in the Xconfig file.
  698.   Configurable keys for the ModeShift  modifier    are  LeftAlt,    RightAlt
  699.   (=AltGr), RightCtl, and ScrollLock.  By default the ModeShift modifier
  700.   is not used.
  701.  
  702.   Usually the AltGr key is used for national keyboard modifications.  To
  703.   enable  the XFree86 server to read the AltGr keytable from the kernel,
  704.   you should put
  705.  
  706.   RightAlt "ModeShift"
  707.  
  708.  
  709.  
  710.   Besides supporting only one additional keymap X11  cannot  use  'dead'
  711.   keys. A key is called 'dead', if it will not print a character when it
  712.   is typed but only after a second character is typed. Depending on  the
  713.   following  character,    the  second character is modified by the 'dead'
  714.   character or two characters will be printed.    A  typical  example  are
  715.   accent  keys.    Such    keys  are  not    supported by X11. So you need to
  716.   replace all dead keysymbols non-dead equivalents. Here is a list, what
  717.   you have to change:
  718.  
  719.  
  720.         dead     non-dead
  721.  
  722.           dead_tilde    asciitilde
  723.           dead_grave     grave
  724.      dead_circumflex   asciicircum
  725.           dead_acute    apostrophe
  726.       dead_diaeresis     diaeresis
  727.  
  728.  
  729.  
  730.  
  731.   Instead  of  supporting dead keys XFree86 supports a Compose key. This
  732.   feature is described in the XFree86kbd manpage and can be modified  by
  733.   assigning  the Compose function to one of the keys mentioned above. By
  734.   default the ScrollLock key has the Compose function.
  735.   If you still want to have the 'dead' keys on    the  console,  you  will
  736.   have    to use a xmodmap file to map the keys to the right symbols under
  737.   X. This is also the method that must be used with earlier versions  of
  738.   XFree86.  On    sunsite    in  the  directory  /pub/Linux/X11/misc example
  739.   xmodmap files for several languages can be found. Note that  you  have
  740.   to  set  the ModeShift modifier nevertheless to get the right keytable
  741.   working.
  742.  
  743.   Please read the kbd.FAQ that comes with the kbd package for Linux. You
  744.   will find many hints on modifying your keyboard layout  on the console
  745.   as well as for X.
  746.  
  747.  
  748.   5.2.    The .xinitrc file
  749.  
  750.   To use X, you need a startup file that calls the local  modifications,
  751.   the window manager and some application you want to have right after X
  752.   has started. If you are using    startx    (or  runx)  to    start    X,  this
  753.   startup  file    is  called 'xinitrc'. There is a standard xinitrc file,
  754.   /usr/lib/X11/xinit/xinitrc (-- This is the  traditional  location  for
  755.   this    file.    The  Linux  filesystem    standard  places  this    file  to
  756.   /etc/X11/xinit/xinitrc in order to  allow  a    read-only  mounted  /usr
  757.   partition. So you should look at that location first.--)
  758.  
  759.   .  If    you  are not content with what this file does (e.g. you want to
  760.   use a different window-manager), you should copy this file to the file
  761.   .xinitrc  in your home directory. After copying the file, you can edit
  762.   it. Look at the manpages for startx and xinit for more information.
  763.  
  764.   Note that both the .xinitrc and the .Xresources file must be    readable
  765.   and  executable, so run chmod u+rx .xinitrc and chmod u+rx .Xresources
  766.   after editing them.
  767.  
  768.  
  769.   5.3.    The personal X resource file
  770.  
  771.   Sometimes you won't be  content  with    default  settings  for    several
  772.   applications    which  often  don't  have a configruration file of their
  773.   own. You can change some of these defaults by setting X  resources  in
  774.   the .Xresources file in your home directory. Note that you should know
  775.   what effects the setting of the resources has to the programs you use.
  776.   Read    the  manpages  for the program and for xrdb before fiddling with
  777.   the Xresources file. This section is not needed to set  up  working  X
  778.   environment, but to customize a working one.
  779.  
  780.   A  resource  file  looks  like  an  application default file (with the
  781.   difference  that  in    the  resoucre    file   resources   for    several
  782.   applications    are    set,    you   should    use   the   full   names
  783.   (Progname.Resourcename) instead of abbreviating the program name by an
  784.   asterisk.   Examples    of application default files can be found in the
  785.   /usr/X386/lib/X11/app-defaults   directory.    Which    resources   are
  786.   available  for a single application is usually shown in the manpage of
  787.   the application.
  788.  
  789.   If you are running a colour server, you might want to put
  790.  
  791.  
  792.        ______________________________________________________________________
  793.        #ifdef COLOR
  794.        *customization: -color
  795.        #endif
  796.        ______________________________________________________________________
  797.  
  798.  
  799.  
  800.  
  801.   into your .Xresources file if some  programs    start  up  b&w    and  not
  802.   colourful.  If the upper change is made (it definetly should be in the
  803.   system Xresources file, so you might hint  that  to  the  distribution
  804.   maintainer),    a  program  foo will read both the Foo and the Foo-color
  805.   application default file from /usr/X386/lib/X11/app-defaults, not just
  806.   the first which is the usual behaviour.
  807.  
  808.   Note    that  the  b&w outfit of a program may caused by the program not
  809.   supporting colours.
  810.  
  811.   5.4.    Using xdm
  812.  
  813.   If you want to run X on your system all the time, you    could    run  xdm
  814.   from    the system startup. xdm is preconfigured on most systems, so you
  815.   should not have to edit any of the xdm configuration files.  Usually a
  816.   runlevel  is attached to a X-only system (look into /etc/inittab), all
  817.   you have to do to get it working is changing the default runlevel.  On
  818.   systems  that    use  an  init    without    runlevels (run man init to see,
  819.   whether or not), you should look into the  /etc/rc  and  /etc/rc.local
  820.   files,  you usually only have to remove comment signs at the beginning
  821.   of a line that calls xdm. If no such line  is    present,  you    probably
  822.   have    a  system that has no preconfigured xdm. Look at the manpages to
  823.   see what has to be done (and complain to the distribution  maintainer,
  824.   if  the  distribution contains XFree86). If you install XFree86 on top
  825.   of a distribution that is not providing  X  support,    you  should  get
  826.   enough  information from the manpages. Help is also available from the
  827.   X Faq, look at section 9 where to get this.
  828.  
  829.   xdm runs by default the .xinitrc [cf 5.2] and the  .Xresources [cf 5.3]
  830.   files, so look at the sections above.
  831.  
  832.   5.5.    Configuration of the window manager
  833.  
  834.   Window  managers  are a very local issue. There are quite a lot window
  835.   managers available [cf. 7]. Configuration  of  one  windowmanager  is
  836.   quite different from that of another. You should look at your .xinitrc
  837.   file or the system xinitrc [cf 5.2]  file, which window manager is used
  838.   (hint: most window managers have a wm ending) and look at its manpage.
  839.   Configuration is usually explained there.  The most common used window
  840.   managers for Linux are:
  841.  
  842.   twm  (part  of  the  XFree86 distribution), fvwm (this seems to be the
  843.   most popular), olwm or olvwm (from  the  Xview[TM]  package),    or  mwm
  844.   (part of Motif[TM]).
  845.  
  846.   5.6.    Running X
  847.  
  848.   Once you have set up a Xconfig file, you probably want to run X.  This
  849.   is not done by running X, but by running startx.  When running it  for
  850.   the  first time run startx 2>1 > Xstartup.log    (--  For csh users this
  851.   should read startx >&    Xstartup.log .--)
  852.  
  853.   to get a log file of the X startup. If problems are encountered,  this
  854.   file will help you by providing information for you and for anyone you
  855.   ask about your problems.
  856.  
  857.   If you encounter any problems, please look at the Appendix C    and  at
  858.   the  XFree86 documentation files in /usr/X386/lib/X11/etc. These files
  859.   provide a lot of information on what to do if problems occur.    If  you
  860.   still    cannot    solve    the problems, procede as in Section 9. The FAQs
  861.   that are mentioned there provide help on many problems you  have  with
  862.   X, so you should get these and read them, too.
  863.  
  864.   You  should  make  sure that the PATH and MANPATH (or path and manpath
  865.   for csh derivates) variables are set correctly.
  866.  
  867.   6.  tinyX - a XFree86 based package for low memory systems
  868.  
  869.   Note that while you can run X on 4 MB RAM systems using tinyX,  it  is
  870.   not  useable    for more complex applications or several applications at
  871.   the same time.
  872.  
  873.   If you have not enough memory to run the stock  XFree86  distribution,
  874.   you  might  try  to  get  this package. It is based on XFree86, so the
  875.   difficult parts of the configuration (setting up the Xconfig file) are
  876.   identical. To run it you need at least 4 MB RAM and another 12 MB swap
  877.   space.  There are now several tinyX versions,    one  for  each    of  the
  878.   different   servers    supplied  by  XFree86.    Please    read  the  above
  879.   description of the servers to get the right version  of  tinyX.  These
  880.   packages are named like
  881.  
  882.   tinyX-YYY-ver.tar.gz,    where    YYY  denotes  the  server  name (without
  883.   leading XF86_)
  884.  
  885.   You can find tinyX on sunsite in the /pub/Linux/X11 hierarchy.  Please
  886.   look    in your neighbourhood for a Mirror of it [cf. 4.1].  You untar it
  887.   as root from /. After this you have to setup a Xconfig file [cf.  5.2].
  888.   The documentation and READMEs for tinyX as well as most of the XFree86
  889.   documentation files  can  be    found  in  /readmes.  Read  the    XFree86
  890.   documentation    files    before    setting    up  a    Xconfig file as they are
  891.   required for this.
  892.  
  893.   The tinyX documentation includes a lot of useful information on memory
  894.   saving   techniques.    You  should  follow  at  least    some  of  these
  895.   suggestions, as running X while swapping constantly is no fun    at  all
  896.   :-(.    If  you  are  running    out  of    memory your system will lock up
  897.   completely (in many cases the only way out is to turn off power or  to
  898.   make    a  hard    reset - both is very dangerous for your filesystem). So
  899.   read these files before starting X so that this does not  happen.  You
  900.   should  read the sections on configuring your X11 system, too [cf. 5.2,
  901.   5.4, 5.5, and 5.6].
  902.  
  903.   As tinyX does not include all documentation  available  with    XFree86,
  904.   you  might notice that you are pointed to a file that is not included.
  905.   In this case you must get the rest of    the  documentation  files  (and
  906.   perhaps the manpages, too) from any XFree86 site [cf. 4.1]. If you have
  907.   enough disk space for that, this is highly recommended anyway.
  908.  
  909.   Note that XFree86 specific manpages (as the Server manpages,...)   are
  910.   not in the *-man* but in the *-doc* files.
  911.  
  912.  
  913.   7.  X related packages
  914.  
  915.   There    are  a lot of packages that are related to X. The first two are
  916.   mentioned by name, as they have a great influence on the look-and-feel
  917.   of X.
  918.  
  919.      Xview
  920.  
  921.     The  xview3L5.1.tar.gz    package    is a port of SUN[TM]'s xview3.2
  922.     package by Kenneth Osterberg to Linux.    It  includes  the  xview
  923.     toolkit,  a  set  of extensions to X. It will give you the look-
  924.     and-feel of the Open Look[TM] extension to  X  (many  will  know
  925.     that  from  Open  Windows[TM]  from  SUN). You can get it in the
  926.     /pub/Linux/libs/X   directory    on    sunsite    or    in    the
  927.     /pub/linux/binaries/usr.bin.X11 directory on tsx-11 [cf 4.1].
  928.  
  929.     To install it, untar the tarfile as root in some directory (e.g.
  930.     /usr/src), read the  documentation  that  comes    with  it  (most
  931.     important  the README) and run the INSTALL script. Note that you
  932.     need about 25MB free disk space to install it  completely  (with
  933.     examples). This is partly due to the fact that for some time all
  934.     files are twice on the disk. After running  the    INSTALL  script
  935.     and  removing the xview3L5.1 directory you will need about 11 MB
  936.     (including all examples). If you do  not  want    to  install  the
  937.     examples  , you will need about 9 MB. If you do not want to com-
  938.     pile any program that uses xview, you can spare another    2.5  MB
  939.     by  removing  the static (*.a) and stub (*.sa) libraries. Do not
  940.     remove the shared (*.so) libraries, though!
  941.  
  942.     For running Xview you need at least 8 MB of RAM, better 16 MB.
  943.  
  944.  
  945.      Motif
  946.  
  947.     This is commercial software, so you will have to pay for it. You
  948.     can  find  an  advertisement from Metrolink (a company that pro-
  949.     vides a    port  to  Linux)  on  tsx-11:/pub/linux/advertisements.
  950.     There  are  more  companies  that sell Motif. Every now and then
  951.     advertisements will appear in comp.os.linux.announce.
  952.  
  953.  
  954.      Windowmanagers [cf. 5.5]
  955.  
  956.     Both aforementioned packages provide window  managers  different
  957.     than  the  standard  twm that comes with XFree86. Many people do
  958.     not like this window manager. There are several further    window-
  959.     managers  available  that run on Linux. A selection of these can
  960.     be found on  sunsite  in  the  directory  /pub/Linux/X11/Window-
  961.     managers.
  962.  
  963.  
  964.      Additional libraries
  965.  
  966.     Sometimes  you will need additional libraries to run binary dis-
  967.     tributions of some application or to compile  it  yourself  [cf.
  968.     8]. If the first is the case, you should find a pointer to that
  969.     library in the Readme file of that package. If you do  not  have
  970.     any pointer, you should look at the /pub/Linux/libs hierarchy at
  971.     sunsite.  Most libraries that work on Linux can be found  there.
  972.     If  you    cannot    find it there and you have Internet access, you
  973.     should follow the instructions on getting information below [cf.
  974.     9  ].
  975.  
  976.  
  977.      X11 Applications
  978.  
  979.     There  are  many  programs and applications available for X, far
  980.     too  many  to  give  even  examples  here.  Look   through   the
  981.     /pub/Linux/X11    hierarchy  on sunsite for ports of many packages
  982.     to Linux. Most programs need no changes at all to run on  Linux,
  983.     so  you    should look at the generic X11 program archives as well
  984.     as at the Linux specific sites. One of the largest X11 sites  is
  985.     ftp.x.org. In the R5contrib directory you can find many programs
  986.     for X11.
  987.  
  988.  
  989.   8.  Compiling programs that use X
  990.  
  991.   Please read the GCC-FAQ, that can be found in the docs directories  of
  992.   sunsite  and    tsx-11 before compiling any programs. Many questions (in
  993.   fact, most) on compiling programs with Linux are answered there.  Many
  994.   Linux    distributions    include    most  relevant    FAQs  in  the directory
  995.   /usr/doc, so you might look there first.
  996.  
  997.   If you have the source code for a program that uses  X11,  usually  it
  998.   will    be  shipped  with an Imakefile instead of a Makefile. What to do
  999.   now?
  1000.  
  1001.   Run xmkmf in the directory that containes the Imakefile. If there is a
  1002.   hierarchy of directories with Imakefiles, you usually only have to run
  1003.   xmkmf in the root directory of that hierachy. You  can  configure  the
  1004.   rest    by  typing  make Makefiles. This will build the Makefiles in all
  1005.   directories in the hierachy. Then you should run make depend. Don't be
  1006.   afraid  if include files like stddef.h, varargs.h, ...  are not found,
  1007.   they are gcc    proprietary  header  files  and    therefore  not    in  the
  1008.   standard  include  directories  (XFree86  versions  prior to 2.1 use a
  1009.   makedepend not based on gcc -M). After that you can make  the    program
  1010.   by  running  make and you can install it (usually in /usr/X386/bin) by
  1011.   running make install, installing of the manpages is  done  by    running
  1012.   make    install.man.  Of  course,  before even running xmkmf, you should
  1013.   have read the documentation that comes usually with such packages.
  1014.  
  1015.   If libraries are missing, please read section 7 above.
  1016.  
  1017.  
  1018.   9.  Finding Information on X and XFree86 on the net
  1019.  
  1020.   For general X questions you should read the FAQ and  the  Xt-FAQ  from
  1021.   the  comp.windows.x  newsgroup (you can achieve them from ftp.x.org in
  1022.   the    directory     R5contrib     or    from     rtfm.mit.edu     in
  1023.   /pub/usenet_by_hierarchy/comp/windows/x by anonymous ftp).  Many Linux
  1024.   distributions include most relevant FAQs in the directory /usr/doc, so
  1025.   you might want to look there first.
  1026.  
  1027.   Please  note    that  comp.windows.x  is  the  newsgroup  for  general X
  1028.   questions.
  1029.  
  1030.   If you have questions on the XFree86 package and cannot find an answer
  1031.   in  the  documentation files (XFree86, Xconfig, XF86_* manpages or the
  1032.   README files in /usr/X386/lib/X11/etc) you may want to post a question
  1033.   to  a    newsgroup.  The  appropriate  newsgroup  for  that  purpose  is
  1034.   comp.windows.x.i386unix, as this newsgroup is dedicated to the XFree86
  1035.   system.   If    you  have  a  problem with the server and want to post a
  1036.   question to this newsgroup, you should provide enough information  for
  1037.   those    that  want  to help you. It is no good idea telling: XFree86 is
  1038.   not working, what do I have to do? Here some    things    that  should  be
  1039.   included in all postings that are concerned with server problems:
  1040.  
  1041.   o  which Operating System and which release of it are you running
  1042.  
  1043.   o  which  hardware  do  you  have  (at  least bus type (ISA/EISA/VLB),
  1044.      graphic card (including chipset, video RAM type (D/VRAM), size  and
  1045.      speed))
  1046.  
  1047.   o  a concise decription of the problem
  1048.  
  1049.   o  a    printout of the server startup (you can generate that by running
  1050.      startx 2>1 >  Xerror.log  or  startx  >&  Xerror.log  depending  on
  1051.      whether  you  use    a bourne shell derivate (e.g. bash) or a C shell
  1052.      derivate (e.g. tcsh) as login shell)
  1053.  
  1054.   o  the used parts of the Xconfig (It is not a good idea to include all
  1055.      lines  commented out by a leading #. This would be the largest part
  1056.      of your post and  most  people  will  already  know  the  copyright
  1057.      statements :-)
  1058.  
  1059.      Furthermore  you  should  say  what  steps    of trouble-shooting you
  1060.      already did (there are some mentioned in the XFree86  documentation
  1061.      files and in Appendix C).
  1062.  
  1063.   Bug    reports    or  questions    on  XFree86  can  be  sent  directly  to
  1064.   XFree86@physics.su.oz.au. This is the contact address of  The    XFree86
  1065.   Project.
  1066.  
  1067.   There are some other newsgroups that cover X related topics:
  1068.  
  1069.   o  comp.windows.x.apps - for X applications
  1070.  
  1071.   o  comp.windows.x.intrinsics - for X intrinsic
  1072.  
  1073.   o  comp.windows.x.motif - for the Motif extension to X
  1074.  
  1075.   o  comp.windows.open-look - for OpenLook and the Xview extension to X
  1076.  
  1077.      Note  that    most  of  these  groups  have FAQ lists that are posted
  1078.      regularly to these groups. As always with    regular    postings  these
  1079.      can be obtained from rtfm.mit.edu via anonymous ftp.
  1080.  
  1081.   Please  do  not  post    X  related  questions    to  any newsgroup of the
  1082.   comp.os.linux.*  hierarchy.  You  will  get  better  answers    to  your
  1083.   questions  in those newsgroups dedicated to those questions, as nearly
  1084.   all those questions are not Linux-specific.
  1085.  
  1086.  
  1087.  
  1088.   10.  Why should I upgrade my system and how do I do that?
  1089.  
  1090.  
  1091.   Upgrading  will  always  refer  to  the  latest  XFree86  distribution
  1092.   (currently 2.1.1).  First of all, take a look at the bugs section [cf.
  1093.   A]. If you are caught by one of those bugs, you should  upgrade.  You
  1094.   should  upgrade,  if    you  want to use one of the newer features.  You
  1095.   should upgrade in any case if you are not running at least XFree86 2.0
  1096.   as  the shared libraries of XFree86 version 2 and those of the earlier
  1097.   versions are partly incompatible. Some bugs have been fixed since then
  1098.   and  most binary packages that use X11 are linked with the XFree86 2.?
  1099.   libraries.
  1100.  
  1101.   Every subsection has a  list    of  new    features  (if    there  are  any)
  1102.   angainst the next newer version.
  1103.  
  1104.   Furthermore  you should upgrade if you have problems with your Xconfig
  1105.   file and want to use the new ConfigXF86 utility.
  1106.  
  1107.  
  1108.   10.1.    Upgrading from XFree86 versions before 2.0
  1109.  
  1110.   You should get the complete distribution but the fonts files    (*-fnt*)
  1111.   which have not changed.
  1112.  
  1113.  
  1114.   10.2.    Upgrading from XFree86 2.0
  1115.  
  1116.   You  should get the complete libraries and programs file, as there are
  1117.   some bugfixes (most important several security holes in  xterm).   New
  1118.   features in 2.1 are:
  1119.  
  1120.   o  kernel keytable support.
  1121.  
  1122.   o  8bit  colour  lookup  table  support  for    some RAMDACs (S3 &Mach32
  1123.      servers).
  1124.  
  1125.   o  Support for SPEA Mercury, TI RAMDACs, additional line lengths,  and
  1126.      (preliminary) Bt485 (S3 server).
  1127.  
  1128.   o  Better DRAM card support (S3 server).
  1129.  
  1130.  
  1131.   o  Pixmux code for some RAMDACs (Mach32 server).
  1132.  
  1133.  
  1134.   10.3.    Upgrading from XFree86 2.1
  1135.  
  1136.   You  only need to upgrade if you have problems due to one of the bugs.
  1137.   If you start using XFree86 you should get 2.1.1,  as    many  bugs  have
  1138.   been    fixed  and  there  is a new configuration utility that will make
  1139.   installation much easier.  New features in 2.1.1:
  1140.  
  1141.   o  ConfigXF86
  1142.  
  1143.   o  full Bt485 support (S3 server).
  1144.  
  1145.  
  1146.   Appendix
  1147.  
  1148.  
  1149.   A.  Bugs in XFree86
  1150.  
  1151.   A.1.    XFree86 2.0
  1152.  
  1153.   The know bugs in XFree86 2.0 are:
  1154.  
  1155.   o  No Bt485 pixmux support (S3 server) - fixed in 2.1.1.
  1156.  
  1157.   o  Font restauration    and  text  mode    restauration  are  not    working
  1158.      correctly on some S3 cards (S3 server) - fixed in 2.1.1.
  1159.  
  1160.   o  No line length of 1152 supported (S3 server) - fixed in 2.1.
  1161.  
  1162.   o  Linear Frame buffer code buggy (S3 server) - fixed in 2.1.
  1163.  
  1164.   o  LinkKit bug (S3 & VGA16 server) - fixed in 2.1.
  1165.  
  1166.   o  The Compaq AVGA driver is not working correctly - fixed in 2.1.
  1167.  
  1168.   o  The  clock probing code is not working for WD90C3? cards - fixed in
  1169.      2.1.
  1170.  
  1171.   o  The ATI SVGA server is not working correctly - fixed in 2.1.1.
  1172.  
  1173.   o  The Mach32 server has problems to detect some more recent revisions
  1174.      of the mach32 chip.
  1175.  
  1176.   o  There are some bugs in the accelerated Cirrus server.
  1177.  
  1178.   o  There is a problem with xset fp rehash due to the memory management
  1179.      - supposedly fixed in 2.1.1.
  1180.  
  1181.   A.2.    XFree86 2.1
  1182.  
  1183.   The know bugs in XFree86 2.1 are:
  1184.  
  1185.   o  The Bt485 pixmux support (S3 server) is only working for some cards
  1186.      (SPEA  Mercury).  It  is  not  working on most other cards (#9, STB
  1187.      Pegasus,...)  - fixed in 2.1.1 for most cards.
  1188.  
  1189.   o  Font restauration and text    mode  restauration  still  not    working
  1190.      correctly on some S3 cards - fixed in 2.1.1.
  1191.  
  1192.   o  The ATI SVGA server does not work correctly - fixed in 2.1.1.
  1193.  
  1194.   o  The Mach32 server has problems to detect some more recent revisions
  1195.      of the mach32 chip.
  1196.  
  1197.   o  Less bugs in the Cirrus drivers, but there still are some.
  1198.  
  1199.  
  1200.   o  Still problem with the Compaq driver - fixed in 2.1.1.
  1201.  
  1202.   o  still xset fp rehash problems - fixed in 2.1.1.
  1203.  
  1204.   A.3.    XFree86 2.1.1
  1205.  
  1206.  
  1207.   o  Some not yet resolved problems with the Mach servers.
  1208.  
  1209.  
  1210.   B.  The Future of XFree86
  1211.  
  1212.   At the moment the XFree86 team is working on X11 release 6.  The  next
  1213.   version,  XFree86  3.0  is  based  on X11R6 and is incorporated in the
  1214.   official X11 distribution. This release is not yet  useable  on  Linux
  1215.   (at  least  parts  of    it).  Please wait until XFree86 3.1 is released
  1216.   which will provide all features of both X11R6 and the current    XFree86
  1217.   version (2.1.1).
  1218.  
  1219.   To  get  version  3.1    working is first priority for the XFree86 team.
  1220.   After this is done, new features and new hardware will be worked upon.
  1221.  
  1222.  
  1223.   C.  Some Questions and Answers
  1224.  
  1225.  
  1226.   Q:  I    noticed  that X11 Release 6 has been announced. Can I use it on
  1227.   Linux?  
  1228.  
  1229.   A: Please look at appendix B above. You should not use it  at
  1230.   the  moment.    
  1231.   
  1232.   Q:  I    started    X  by    running    'X'. I get the stippled
  1233.   background, but no window at all. What am I doing wrong?
  1234.  
  1235.   A: Running  X    starts    only  the  server,  no    window-manager    and  no
  1236.   applications. The usual way to start X is running 'startx'.
  1237.  
  1238.   Q: Is there support for 16-bit or 24-bit colour modes?
  1239.  
  1240.   A:  No, there is only support for 1-bit, 4-bit and 8-bit colour in the
  1241.   moment.  The 4-bit server (XF86_VGA16) is in an experimental stage, so
  1242.   there    are  bugs and problems using it. Most of the known problems are
  1243.   mentioned in the manpage.
  1244.  
  1245.   Q: I have a Logitech serial mouse  but  it  does  not    work  with  the
  1246.   Logitech keyword.
  1247.  
  1248.   A: The Logitech keyword is for older Logitech serial mice, more recent
  1249.   Logitech serial mice use the MouseMan or Microsoft  keyword.    Logitech
  1250.   serial mice plugged into a ps/2 port use the ps/2 keyword.
  1251.  
  1252.   Q:  My  server  is  unable  to find some of the fonts (e.g. font fixed
  1253.   cannot be loaded at startup).
  1254.  
  1255.   A: First check that the directories in the font path    in  the    Xconfig
  1256.   file    are  named  correctly  and  contain  fonts. If that is the case,
  1257.   running mkfontdir in all of those directories may help you.
  1258.  
  1259.   Q: I have the problem that the fonts are not restored correctly  after
  1260.   leaving X. My screen looks totally garbled.
  1261.  
  1262.   A:  This  is    not  yet completely resolved. There are utilities called
  1263.   runx , restoretext,... coming with  svgalib  (sunsite:/pub/Linux/libs)
  1264.   that    help in most cases. In the S3 server from XFree86 2.1.1 this bug
  1265.   is fixed.
  1266.  
  1267.   Q: I have a s3 card and it does not work  properly.  The  screen  gets
  1268.   distorted when dragging windows and it frequently locks up.
  1269.  
  1270.   A:  First try to use options nomemaccess or nolinear. If both does not
  1271.   help and you have a s3 928, try specifying chipset s3_generic in  your
  1272.   Xconfig.  If    nothing    helps,    it  might  be a incompatibility problem
  1273.   between your graphic card and your motherboard. Try to see if the card
  1274.   works in a different system, if you can get your hands on one.
  1275.  
  1276.   Q:  I had a normal SVGA card up to now with 1 MB of video RAM. With it
  1277.   I could do a virtual resolution of 1152x900 or 1024x1024. Why does  it
  1278.   not work on my new s3 card?
  1279.  
  1280.   A: All but the most recent revisions of the s3 chips cannot use a line
  1281.   length of 1152, so a length of 1280 is used  for  this  resolution  in
  1282.   XFree86  2.0.    The  later versions can use the line length of 1152 for
  1283.   the more recent revisions. If you have a new    revision,  grade  up  to
  1284.   2.1.1    and it should work.  Furthermore the s3 server needs 1k for the
  1285.   cursor, so a virtual resolution using 1MB will not  work.   Note  that
  1286.   you  will  need  some    memory on the graphics card for font and pixmap
  1287.   caching if you want to get maximum performance from your graphic card.
  1288.   So  the  memory  is  not  wasted, but will get you a great performance
  1289.   boost. Try running some font or pixmap specific mode of  x11perf  with
  1290.   maximal allowed virtual resolution (e.g.  1024x1023) and with 1024x768
  1291.   and compare the results!  Recommended    resolutions  are  1024x768  and
  1292.   1152x800  for    1MB  cards.   With  the older chip revisions the latter
  1293.   resolution leaves not too much memory to the font cache, so  you  will
  1294.   have    a  performance loss using large fonts. For normal use with fonts
  1295.   up to 18 points it should be OK, though.
  1296.  
  1297.   Q: I have a s3 Localbus card and the server cannot find a high  memory
  1298.   area. Then it disables direct memory access. What should i do?
  1299.  
  1300.   A:  There  are  some strange problems with Localbus cards. It is being
  1301.   worked upon. If you are using XFree86 2.0, put option    "nolinear"  and
  1302.   option "memaccess" into your Xconfig file. This will enable the server
  1303.   to use the 64k aperture that is supported even for  ISA  cards.   This
  1304.   will    furthermore  prevent  the following problem (this bug is only in
  1305.   XFree86 2.0): Due to a bug in the linear frame  buffer  code,    the  s3
  1306.   processor  is    not  reset  correctly, once a large (e.g. 1024k) linear
  1307.   frame buffer is found. Thus the server will not work after that if  it
  1308.   fails    to  find the high memory area until a hard reset is sent to the
  1309.   chip (i.e.  even a normal reboot will not reset the system).
  1310.  
  1311.   Q: I have a WD90C3x based graphic card. XFree86 2.0 seems not to probe
  1312.   the clocks correctly. What can I do?
  1313.  
  1314.   A: Yup, there is a bug in the clock probing code in XFree86-2.0. It is
  1315.   fixed in 2.1. Grade up!
  1316.  
  1317.   Q: I have a Diamond Viper card. Why does it not work?
  1318.  
  1319.   A: In addition to being a Diamond product, this card is based    on  the
  1320.   P9000    chip  by  Weitek. This chip is not yet supported by XFree86, so
  1321.   you have only a chance to get it  working  with  one    of  the    generic
  1322.   servers  (i.e.  Mono    or  VGA16). You will have nevertheless the clock
  1323.   setting problem that prevents the other diamond cards from working.
  1324.  
  1325.   Q: I have a card with the Compaq AVGA chip. It does not work.
  1326.  
  1327.   A: The AVGA support seems to be completely  broken  in  2.0.    This  is
  1328.   fixed in 2.1.
  1329.  
  1330.   Q: I have a busmouse and am running selection. The server has problems
  1331.   with recognizing the mouse.
  1332.  
  1333.   A: Selection has some problems with busmice. XFree86 cannot  open  the
  1334.   mouse    device    if selection is running on it. So kill selection before
  1335.   starting XFree86.
  1336.   Q: The server dies with the message "Cannot find a free VT".
  1337.  
  1338.   A: XFree86 needs a free VT to run on. So  if    you  have  put    a  getty
  1339.   process on every virtual console in you /etc/inittab, XFree86 will not
  1340.   be able to start. I suggest to let /dev/tty8 (for kernel messages) and
  1341.   /dev/tty7 (for XFree86) free of a getty process.
  1342.  
  1343.   Q:  Why  is  the XF86_Mono server not working with my hercules card, I
  1344.   thought this card was supported?
  1345.  
  1346.   A: The hercules driver (as well as the BDM2 driver)  is  not    part  of
  1347.   XF86_Mono  by    default.  Get    the LinkKit and you can include it.  You
  1348.   will need about 4 MB free disk space and about 5 minutes for    building
  1349.   the server (on a 486/30).
  1350.  
  1351.   Q: I have problems with the backspace and delete keys.
  1352.  
  1353.   A:  You can solve this using either loadkeys or xmodmap. In your shell
  1354.   initialization file (.bashrc, .zshrc, ...) you have to set  the  right
  1355.   behaviour  of the shell using stty. Please read the manpages how to do
  1356.   that.
  1357.  
  1358.   There are a lot strange phenomena reported  that  cannot  be    handeled
  1359.   here.    If your card has a switch for bus waitstates, it helps in many
  1360.   cases to put this to the 1WS setting. You  should  also  look    at  the
  1361.   remarks above on setting some BIOS values. As many reports (especially
  1362.   on BIOS setting) are contradicting, you should try several settings.
  1363.  
  1364.  
  1365.   N.  Acknowledgements
  1366.  
  1367.   Dirk Hohndel (hohndel@aib.com) and David E.  Wexelblat  (dwex@aib.com)
  1368.   helped writing this HOWTO.
  1369.  
  1370.  
  1371.   O.  Trademarks
  1372.  
  1373.   XFree86 is a trademark of The XFree86 Project, Inc.
  1374.  
  1375.   Motif is a trademark of the Open Software Foundation.
  1376.  
  1377.   SUN, Xview, and Open Windows are trademarks of SUN Microsystems.
  1378.  
  1379.   Open Look is a trademark of AT&T.
  1380.  
  1381.   Microsoft  is a trademark of Microsoft.
  1382.  
  1383.   Logitech and MouseMan are trademarks of Logitech.
  1384.  
  1385.   Intel and Pentium are trademarks of Intel.
  1386.  
  1387.   PostScript is a trademark of Adobe.
  1388.  
  1389.  
  1390.